#pragma once
#ifndef PUBLIC_METHOD_H
#define PUBLIC_METHOD_H
#include <iostream>
#include <cstring>
#include <string>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <unistd.h>
#include <pthread.h>

#include "Http.h"
#include "request.h"
#include "response.h"

using namespace std;

#define PRINTF(str) printf("[%s - %d] "#str" = %s \n", __func__, __LINE__, str);

/**
* 打印错误信息并退出程序
* @param str 错误提示
*/
void error_die(const char* str);
/**
* 网络通信初始化
* @param port 端口号
* @return socket 套接字
*/
int startup(unsigned short* port);

// 处理错误请求
void unimplement(socket client);

// 处理用户请求的线程
unsigned int accept_request(void* arg);

// 监听套接字
void listenSocket(unsigned short port);


#endif // !PUBLIC_METHOD
